home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC-SIG: World of Games
/
PC-SIG World of Games (CDRM1080710) (1993).iso
/
ENT
/
DISK0035.ZIP
/
DROIDS.BAS
< prev
next >
Wrap
BASIC Source File
|
1983-02-12
|
7KB
|
172 lines
10 KEY OFF:CLS
20 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
30 PRINT"░┌───────────────────────────────────┐░"
40 PRINT"░│ │░"
50 PRINT"░│ 2043-A.BAS │░"
60 PRINT"░│ DROIDS │░"
70 PRINT"░│ │░"
80 PRINT"░│ │░"
90 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
100 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
110 PRINT"░│ █ █ █ █ █ █ │░"
120 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
130 PRINT"░│ █ █ █ █ █ │░"
140 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
150 PRINT"░│ │░"
160 PRINT"░│ International PC Owners │░"
170 PRINT"░│ │░"
180 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
190 PRINT"░│ │░"
200 PRINT"░└───────────────────────────────────┘░"
210 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
220 PRINT
230 PRINT " PRESS ANY KEY TO CONTINUE
240 A$=INKEY$: IF A$="" THEN 240
250 CLS
1000 REM DROIDS GAME
1010 SAMPLE$="NO"
1020 GOTO 1040
1030 SAMPLE$="YES"
1040 BL$=" "
1050 DEF SEG=64:POKE 23,64:REM CAPITAL LETTERS
1060 ORE=254
1070 DIM PL$(4),CH(4)
1080 CH(1)=65:CH(2)=66:CH(3)=67:CH(4)=68
1090 SCREEN 0,1,0,0:WIDTH 40:LOCATE ,,0:GOSUB 1350
1100 GOSUB 1700
1110 GOSUB 1850
1120 NP=1:NP1=0
1130 GOSUB 2290
1140 GOSUB 2030
1150 GOSUB 2200
1160 NP1=NP1+1:NP1=NP1 MOD NPLAY:NP=NP1+1
1170 GOTO 1130
1180 REM GAMEBOARD
1190 CLS:COLOR 14,0,0
1200 X$=CHR$(ORE)
1210 X15$=X$
1220 FOR I=1 TO 14:X15$=X15$+X$:NEXT
1230 FOR J=3 TO 12:LOCATE J,5:PRINT X15$:NEXT
1240 RETURN
1250 REM COMPASS
1260 YC=8:XC=30
1270 LOCATE YC,XC-3:PRINT "W";CHR$(196);CHR$(196);CHR$(197);CHR$(196);CHR$(196);"E"
1280 LOCATE YC-3,XC:PRINT "N"
1290 LOCATE YC-2,XC-3:PRINT "NW ";CHR$(179);" NE"
1300 LOCATE YC+2,XC-3:PRINT "SW ";CHR$(179);" SE"
1310 LOCATE YC-1,XC-1:PRINT "\";CHR$(179);"/"
1320 LOCATE YC+1,XC-1:PRINT "/";CHR$(179);"\"
1330 LOCATE YC+3,XC:PRINT "S"
1340 RETURN
1350 REM INSTRUCTIONS
1360 COLOR 7,0:CLS
1370 LOCATE 5,12:PRINT "WELCOME TO DROIDS"
1380 PRINT :PRINT " DO YOU WANT INSTRUCTIONS? (Y OR N)"
1390 RESP$=INKEY$:IF RESP$="" THEN GOTO 1390
1400 IF RESP$="N" OR RESP$="n" THEN RETURN
1410 CLS
1420 PRINT :PRINT "DROIDS ARE USED TO HUNT FOR MINERALS"
1430 PRINT "ON THE PLANET MERCURY. THE HUMANS ON"
1440 PRINT "MERCURY PLAY THIS GAME WITH FOUR DROIDS"
1450 PRINT "ON A FIELD WHICH CONTAINS VALUABLE ORE!"
1460 PRINT :PRINT "THE VALUABLE ORE LOOKS LIKE THIS: ";:COLOR 14:PRINT CHR$(ORE):COLOR 7
1470 PRINT :PRINT "DO YOU WANT TO SEE THE GAME BOARD (Y/N)?";
1480 RESP$=INKEY$:IF RESP$="" THEN GOTO 1480
1490 IF RESP$="Y" OR RESP$="y" THEN GOSUB 1180
1500 COLOR 7:PRINT:PRINT "THE DROIDS ARE NAMED ";CHR$(CH(1));", ";CHR$(CH(2));", ";CHR$(CH(3));" AND ";CHR$(CH(4));"."
1510 PRINT "GOING IN TURN, THE PLAYERS (UP TO 4)"
1520 PRINT "MOVE ANY DROID WHICH CAN COLLECT ORE."
1530 PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:COLOR 7:PRINT " (PIECE"
1540 PRINT "OF ORE) AND HIGH SCORE WINS.
1550 PRINT "DROIDS GO NORTH, SOUTH, EAST, WEST, OR"
1560 PRINT "DIAGONALLY, BUT ONLY IN A STRAIGHT LINE"
1570 PRINT "AND ONLY ONTO SQUARES WITH ORE."
1580 PRINT :PRINT "ANY PLAYER MAY MOVE ANY DROID."
1590 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
1600 RESP$=INKEY$:IF RESP$="" THEN GOTO 1600
1610 CLS:GOSUB 1250
1620 PRINT :PRINT :PRINT "TO MOVE A DROID TYPE ITS SYMBOL AND"
1630 PRINT "DIRECTION TO GO (N,NE,E,SE,S,SW,W,NW)."
1640 PRINT :PRINT "THE DROID WILL GO THAT WAY UNTIL IT"
1650 PRINT "RUNS OUT OF ORE. "
1660 PRINT :PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:PRINT ".":COLOR 7
1670 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
1680 RESP$=INKEY$:IF RESP$="" THEN GOTO 1680
1690 RETURN
1700 REM GET PLAYER NAMES PL$(NP)
1710 CLS
1720 PRINT "HOW MANY PLAYERS? (1 TO 4)"
1730 RESP$=INKEY$:IF RESP$="" THEN GOTO 1730
1740 IF RESP$<"1" OR RESP$>"4" THEN PRINT "PLEASE TYPE 1,2,3, OR 4":GOTO 1730
1750 NPLAY=VAL(RESP$)
1760 PRINT NPLAY;"PLAYERS, RIGHT? (Y OR N)"
1770 RESP$=INKEY$:IF RESP$="" THEN GOTO 1770
1780 IF RESP$="N" OR RESP$="n" THEN GOTO 1720
1790 PRINT "NOW, ENTER THE NAMES OF THE PLAYERS."
1800 FOR I=1 TO NPLAY
1810 PRINT "TYPE THE NAME FOR PLAYER ";I;" AND PRESS ENTER KEY.":INPUT "",PL$(I)
1820 PRINT "WELCOME ";PL$(I);"!"
1830 NEXT
1840 RETURN
1850 REM SETUP PLAYING ENVIRONMENT
1860 GOSUB 1180
1870 GOSUB 1250
1880 COLOR 1
1890 RANDOMIZE VAL(MID$(TIME$,7,2)+MID$(TIME$,4,2))
1900 FOR J=1 TO 4
1910 IX(J)=INT(15*RND)+5
1920 IY(J)=INT(10*RND)+3
1930 CHT=SCREEN (IY(J),IX(J)):IF CHT<>ORE THEN 1910
1940 LOCATE IY(J),IX(J):PRINT CHR$(CH(J))
1950 NEXT
1960 COLOR 7:LOCATE 14,5
1970 PRINT "SCORE PLAYER'S NAME"
1980 FOR J=1 TO NPLAY
1990 SC(J)=0
2000 LOCATE 14+J,5:PRINT SC(J),PL$(J)
2010 NEXT
2020 RETURN
2030 REM PLAYER NUMBER NP'S MOVE
2040 LOCATE 20,1:FOR I=1 TO 3:PRINT BL$:NEXT
2050 LOCATE 20,1:PRINT PL$(NP);", TYPE A DROID'S SYMBOL ":INPUT "AND PRESS ENTER ",DJ$
2060 IF DJ$=CHR$(CH(1)) OR DJ$=CHR$(CH(2)) OR DJ$=CHR$(CH(3)) OR DJ$=CHR$(CH(4)) THEN GOTO 2070 ELSE GOTO 2040
2070 LOCATE 22,1:INPUT "TYPE A DIRECTION AND PRESS ENTER ",DIR$
2080 IF DIR$="N" THEN DY=-1:DX=0:GOTO 2170
2090 IF DIR$="NE" THEN DY=-1:DX=1:GOTO 2170
2100 IF DIR$="E" THEN DY=0:DX=1:GOTO 2170
2110 IF DIR$="SE" THEN DY=1:DX=1:GOTO 2170
2120 IF DIR$="S" THEN DY=1:DX=0:GOTO 2170
2130 IF DIR$="SW" THEN DY=1:DX=-1:GOTO 2170
2140 IF DIR$="W" THEN DY=0:DX=-1:GOTO 2170
2150 IF DIR$="NW" THEN DY=-1:DX=-1:GOTO 2170
2160 GOTO 2070
2170 FOR J=1 TO 4:IF CHR$(CH(J))=DJ$ THEN DN=J
2180 NEXT
2190 RETURN
2200 REM GAME MOVE FOR PLAYER NUMBER NP WITH DROID SYMBOL DJ$ AND DIRECTION DX,DY AND SCORE SC(NP) DROID NUMBER DN
2210 CT=SCREEN (IY(DN)+DY,IX(DN)+DX)
2220 IF CT<>ORE THEN RETURN
2230 LOCATE IY(DN),IX(DN):PRINT CHR$(0)
2240 IY(DN)=IY(DN)+DY:IX(DN)=IX(DN)+DX
2250 SC(NP)=SC(NP)+1:LOCATE 14+NP,5:PRINT SC(NP)
2260 LOCATE IY(DN),IX(DN):COLOR 1:PRINT CHR$(CH(DN)):COLOR 7
2270 PLAY "O1 T200 G"
2280 GOTO 2210
2290 REM CHECK ENDGAME
2300 STP$="YES"
2310 FOR J=1 TO 4
2320 FOR JX=-1 TO 1
2330 FOR JY=-1 TO 1
2340 CT=SCREEN (IY(J)+JY,IX(J)+JX)
2350 IF CT=ORE THEN STP$="NO"
2360 NEXT :NEXT :NEXT
2370 IF STP$="NO" THEN RETURN
2380 LOCATE 17+6,5:PRINT "GAME IS OVER"
2390 PRINT "PLAY AGAIN? (Y OR N)"
2400 RESP$=INKEY$:IF RESP$="" THEN GOTO 2400
2410 IF RESP$="Y" OR RESP$="y" THEN GOTO 1090
2420 IF SAMPLE$="YES" THEN CHAIN "SAMPLES",1000 ELSE END
2430 GOTO 1030
400
2410 IF RESP$="Y" OR RESP$="y" THEN GOTO 1090
2420 IF SAMPLE$=